Le réseau avec systemd-networkd

Table des matières

Le réseau avec systemd-networkd

Introduction

Le réseau avec systemd-networkd

Concepts

Fichier de configuration

Exemples simples IP Dynamique

Exemples simples IP Fixe

 

Introduction



Comme vous le savez, systemd est plus qu'un système d'init et de gestion des services !

Voici quelques exemples de configuration possibles avec systemd !

Cet article sera consacré à la gestion du réseau.

Le réseau avec systemd-networkd

 

Concepts


Pour faire fonctionner le réseau avec systemd, nous aurons besoin de :
systemd-networkd.service => Le service réseau
systemd-resolved.service => Le service de résolution de nom

A noter que systemd-resolved peut être utilisé sans systemd-networkd.
Si on utilise systemd-networkd, il faut évidemment désactiver le service NetworkManager (ou autre gestionnaire réseau) !

Toutes les configuration réseau se trouvent dans /etc/systemd/network/.

Comme toute commande systemd, elle finit par ctl, et nous utiliserons networkctl.

Pour lister les interfaces, on peut donc utiliser :

 

networkctl list



Lorsque aucune interface n'est paramétrée, on a une sortie de ce style :

 

# networkctl list

IDX LINK   TYPE     OPERATIONAL SETUP

  1 lo     loopback carrier     unmanaged

  2 enp0s3 ether    routable    unmanaged



La commande networkctl list nous produit ceci une fois l'interface configurée :

# networkctl list

IDX LINK   TYPE     OPERATIONAL SETUP

  1 lo     loopback carrier     unmanaged

  2 enp0s3 ether    routable    configuring



A noter, la commande networkctl status permet d'afficher plus d'infos :

 

# networkctl status

●   State: routable                                                          

  Address: 192.168.21.195 on enp0s3                                          

           fe80::f858:6feb:af9b:43c9 on enp0s3                                

  Gateway: 192.168.21.254 (TP-LINK TECHNOLOGIES CO.,LTD.) on enp0s3          

           fe80::24ca:f9ff:fe9b:7f30 (TP-LINK TECHNOLOGIES CO.,LTD.) on enp0s3




Après chaque modification, on doit redémarrer le service :

 

systemctl restart systemd-networkd

 

Fichier de configuration



Sur la machine concernée, l'interface réseau s'appelle enp0s3.

Je vais créer le fichier /etc/systemd/network/enp0s3-ethernet.network.
Il est important que le fichier de configuration de l'interface réseau ait l'extension .network.

Pour les exemples simples ci-dessous, voici les valeurs utilisables dans notre fichier .network :

 

[Match]
Name=Nom de l'interface
MACAddress=Adresse MAC de l'interface
[Link]
MACAddress=Changer l'adresse MAC
MTUBytes=Changer la valeur du MTU
[Network]
DHCP=ipv4 ou ipv6 (si non indiqué, vaut false, true = ipv4 et ipv6)
Address=IP fixe (si DHCP non actif, avec masque en notation CIDR)
Gateway=IP du routeur (si DHCP non actif)
DNS=IP du DNS (Cette ligne peut être utilisée 2 fois pour spécifier 2 DNS)

 

Exemples simples IP Dynamique



Exemple avec une configuration DHCP :

 

[Match]

Name=enp0s3

[Network]

DHCP=ipv4


Exemples simples IP Fixe



Exemple avec une configuration statique :

 

[Match]

Name=enp0s3

[Network]

Address=192.168.21.240/24

Gateway=192.168.21.254

DNS=1.1.1.1